// common/enums/actionResult.ts

export const ActionResultType = {
    /** 异常返回 */
    Error: 'Error',

    /** 无操作 */
    None: 'None',

    /** 删除 */
    Del: 'Del',

    /** 新建 */
    New: 'New',

    /** 普通更新 (无状态更新) */
    UpdateCommon: 'UpdateCommon',

    /** 状态变更 */
    UpdateStateChange: 'UpdateStateChange',

    /** 审核更新 */
    UpdateReview: 'UpdateReview',

    /** 撤销审核更新 */
    UpdateUndoReview: 'UpdateUndoReview',

    /** 数据更新（如数量） */
    UpdateData: 'UpdateData'
}

export class ActionResult {
    constructor({
        type = ActionResultType.None,
        param = null,
        param2 = null
    }) {
        this.type = type;
        this.param = param;
        this.param2 = param2;
    }

    toCopyJson() {
        return {
            type: this.type,
            param: this.param,
            param2: this.param2
        }
    }

    static fromJson(json) {
        return new ActionResult({
            type: json.type,
            param: json.param,
            param2: json.param2
        })
    }
}